package com.bysj.sausys.service;

import com.bysj.sausys.beans.PageQuery;
import com.bysj.sausys.beans.PageResult;
import com.bysj.sausys.beans.SubmitTaskBean;
import com.bysj.sausys.model.SysActArt;

import java.util.Map;

/**
 * 推文Service接口
 *
 * @author WangZK
 */
public interface ISysActArtService {

    /**
     * 保存推文
     *
     * @param sysActArt
     * @param map
     */
    void save(SysActArt sysActArt, Map map);

    /**
     * 更新推文
     *
     * @param sysActArt
     * @param map
     */
    void update(SysActArt sysActArt, Map map);

    /**
     * 根据id获取推文
     *
     * @param id
     * @return
     */
    SysActArt findById(Integer id);

    /**
     * 分页获取推文列表
     *
     * @param pageQuery
     * @param map
     * @return
     */
    PageResult<SysActArt> getPage(PageQuery pageQuery, Map map);

    /**
     * 删除推文
     *
     * @param id
     */
    void delete(Integer id);

    /**
     * 修改推文的展示状态
     *
     * @param id
     */
    void updateShowStatus(Integer id);

    /**
     * 启动推文审批流程
     *
     * @param id
     * @param username
     */
    void saveStartProcess(Integer id, String username);

    /**
     * 获取审批信息
     *
     * @param taskId
     * @return
     */
    Map getAuditInfo(String taskId);

    /**
     * 获取历史的审批信息
     *
     * @param id
     * @return
     */
    Map getHisComment(Integer id);

    /**
     * 提交任务
     *
     * @param submitTaskBean
     * @param username
     */
    void saveSubmitTask(SubmitTaskBean submitTaskBean, String username);

    /**
     * 修改推文的状态
     *
     * @param map
     */
    void updateStatus(Map map);

    /**
     * 根据推文类别和展示状态分页获取推文列表
     *
     * @param type
     * @param showStatus
     * @param pageQuery
     * @return
     */
    PageResult getPageByTypeAndShowStatus(String type, Integer showStatus, PageQuery pageQuery);

    /**
     * 根据社团id和展示状态分页获取推文列表
     *
     * @param assId
     * @param showStatus
     * @param pageQuery
     * @return
     */
    PageResult getPageByAssIdAndShowStatus(Integer assId, Integer showStatus, PageQuery pageQuery);
}
